package com.dc.toolkit.hutool.io;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import org.junit.Test;

import java.io.File;

/**
 * Description: Hutool FileNameUtil Demo
 * @author: gdc
 * @date: 2021/10/12
 * @version 1.0
 */
public class FileNameUtilTest {

    private File FILE = FileUtil.file("Test.123.java");

    /**
     * 判断字符串是否为 null 或 ""
     */
    @Test
    public void test_getName(){
        String fileName = FileNameUtil.getName(FILE);
        System.out.println(fileName);
    }

    /**
     * 测试       返回主文件名
     */
    @Test
    public void test_mainName(){
        String mainName = FileNameUtil.mainName(FILE);
        System.out.println(mainName);
    }

    /**
     * 测试       返回主文件名
     */
    @Test
    public void test_prefix(){
        String filePrefix = FileNameUtil.getPrefix(FILE);
        System.out.println("文件的名称为：" + filePrefix);
    }

    /**
     * 测试       返回后缀名
     */
    @Test
    public void test_extName(){
        String extName = FileNameUtil.extName(FILE);
        System.out.println(extName);
    }

    /**
     * 测试       根据文件名检查文件类型，忽略大小写
     */
    @Test
    public void test_isType(){
        boolean isType = FileNameUtil.isType("abc.txt", "jpg", "txt", "avi");
        System.out.println(isType);
    }

    /**
     * 测试       文件名中是否包含在Windows下不支持的非法字符，包括： \ / : * ? " &lt; &gt; |
     */
    @Test
    public void test_containsInvalid(){
        boolean containsInvalid = FileNameUtil.containsInvalid("abc\\.txt");
        System.out.println(containsInvalid);
    }

    /**
     * 测试       清除文件名中的在Windows下不支持的非法字符
     */
    @Test
    public void test_(){
        String fileName = FileNameUtil.cleanInvalid("abc\\.txt");
        System.out.println(fileName);
    }
}